接下來我們來談一談 AR 物件的表面偵測
首先是 Anchor,為什麼我們需要 Anchor 呢?
因為我們需要讓虛擬物件連結到真實物件上,不知道大家還記不記得,有一年的 WWDC Demo 有一隻變色龍就在真實世界爬行的樣子,如果沒有Anchor那變色龍就會在空中移動了
ARAnchor這個物件包含真實世界的位置與方向的轉變, 但它是看不見的且存在於 ARKit Scence 中
就預設而言 ARkit 搭配 AR Anchor 在空白的 SCNNode 上, 我們所要做的就是在該節點上添加內容,做為子 Node。
常用的 ARAnchor 是 ARPlaneAnchor , 提供平面的位置, 方向, 中心點與範圍等資訊, 可以利用這些資訊產生對應的 SceneKit plane node
為了讓ARKit 可以偵測真實世界的表面, 我們需要對ARConfiguration 做設定
config.planeDetection = .horizontal // 如果需要的平面是垂直的也可以設成.vertival
如此一來將會自動產生ARPlaneAnchor 的實例,對每一個被偵測的表面